package com.wang.lotterysystem.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.wang.lotterysystem.controller.param.CreateActivityParam;
import com.wang.lotterysystem.controller.param.PageListParam;
import com.wang.lotterysystem.service.dto.activity.ActivityDTO;
import com.wang.lotterysystem.service.dto.activity.ActivityDetailDTO;
import com.wang.lotterysystem.service.dto.activity.CreateActivityDTO;
import com.wang.lotterysystem.service.dto.PageListDTO;

public interface ActivityService {
    /**
     * 创建活动对象
     * @param param 活动参数
     * @return 返回指定类型返回结果
     * @throws JsonProcessingException json异常
     */
    CreateActivityDTO createActivity(CreateActivityParam param) throws JsonProcessingException;

    /**
     * 查询活动列表
     * @param param 页码参数
     * @return 返回活动列表
     */
    PageListDTO<ActivityDTO> findActivityList(PageListParam param);

    /**
     * 获取活动详细信息
     * @param activityId 活动id
     * @return 返回活动详细信息
     */
    ActivityDetailDTO getActivityDetail(Long activityId) throws JsonProcessingException;


    /**
     * 更新活动的缓存信息
     * @param activityId 活动id
     */
    void cacheActivity(Long activityId) throws JsonProcessingException;
}